import request from "@/utils/request.js";

// API基础URL
const API_BASE_URL = 'https://jtmjrefalbbp.sealosgzg.site';

/**
 * 获取穿搭推荐（异步模式）
 * @param {Object} data - 包含用户输入文本和用户信息
 */
export function getFashionRecommend(data) {
  console.log('请求穿搭推荐数据:', data);
  
  // 获取存储的token或account，优先使用手机号
  const account = uni.getStorageSync('phone') || uni.getStorageSync('uid') || uni.getStorageSync('account') || '';
  console.log('使用账号:', account);
  
  // 构建请求参数 - 模仿getFashionStatus方式
  // 不在user_info中包含account，只在header中使用
  const requestData = {
    user_input: data.user_input || "",
    user_info: {
      // 移除account字段，只保留其他用户信息
      ...(data.user_info || {})
    }
  };
  
  // 确保user_info中没有account字段
  if (requestData.user_info.account) {
    delete requestData.user_info.account;
  }
  
  console.log('最终请求参数:', JSON.stringify(requestData, null, 2));
  
  return new Promise((resolve, reject) => {
    uni.request({
      url: `${API_BASE_URL}/api/fashion`,
      method: 'POST',
      data: requestData,
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + account // 使用动态账号
      },
      success: (res) => {
        console.log('穿搭推荐原始响应:', res);
        resolve(res.data);
      },
      fail: (err) => {
        console.error('穿搭推荐请求失败:', err);
        reject(err);
      }
    });
  });
}

/**
 * 查询穿搭推荐处理状态
 * @param {String} requestId - 请求ID
 */
export function getFashionStatus(requestId) {
  console.log('查询穿搭状态, 请求ID:', requestId);
  
  // 获取存储的token或account，优先使用手机号
  const account = uni.getStorageSync('phone') || uni.getStorageSync('uid') || uni.getStorageSync('account') || '';
  console.log('使用账号:', account);
  
  return new Promise((resolve, reject) => {
    uni.request({
      url: `${API_BASE_URL}/api/fashion/status?request_id=${requestId}`,
      method: 'GET',
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + account // 使用动态账号
      },
      success: (res) => {
        console.log('状态查询原始响应:', res);
        resolve(res.data);
      },
      fail: (err) => {
        console.error('状态查询请求失败:', err);
        reject(err);
      }
    });
  });
}

/**
 * 提交穿搭推荐评分
 * @param {Object} data - 包含请求ID和评分
 */
export function submitFashionRating(data) {
  console.log('提交穿搭评分:', data);
  
  // 获取存储的token或account，优先使用手机号
  const account = uni.getStorageSync('phone') || uni.getStorageSync('uid') || uni.getStorageSync('account') || '';
  console.log('使用账号:', account);
  
  return new Promise((resolve, reject) => {
    uni.request({
      url: `${API_BASE_URL}/api/fashion/rating`,
      method: 'POST',
      data: data,
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + account // 使用动态账号
      },
      success: (res) => {
        console.log('评分提交原始响应:', res);
        resolve(res.data);
      },
      fail: (err) => {
        console.error('评分提交请求失败:', err);
        reject(err);
      }
    });
  });
}

/**
 * 健康检查接口
 */
export function healthCheck() {
  console.log('请求健康检查');
  
  // 获取存储的token或account，优先使用手机号
  const account = uni.getStorageSync('phone') || uni.getStorageSync('uid') || uni.getStorageSync('account') || '';
  console.log('使用账号:', account);
  
  return new Promise((resolve, reject) => {
    uni.request({
      url: `${API_BASE_URL}/api/health`,
      method: 'GET',
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + account // 使用动态账号
      },
      success: (res) => {
        console.log('健康检查原始响应:', res);
        resolve(res.data);
      },
      fail: (err) => {
        console.error('健康检查请求失败:', err);
        reject(err);
      }
    });
  });
} 